package com.cskaoyan.javase.oop1._5constructor;

/**
 * @description:
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 总结到目前为止给成员变量赋值的方式:
 *     1,默认初始化具有默认值
 *     2,显式赋值
 *     3,构造器赋值
 * 赋值的顺序是: 默认初始化最先,构造器在最后,显式赋值在中间
 *
 * Debug模式查看的对象成员变量赋值的顺序:
 *      1,先去找new创建对象所对应的构造方法,但是不会执行
 *      2,而是先执行成员变量的显式赋值(如果有多个成员变量显式赋值,按照代码书写顺序从上到下赋值)
 *      3,最后再执行构造器中的代码
 *      4,以上就完成赋值
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        Person p = new Person(18);
    }
}

class Person{
    //显式赋值
    int age = 10;
    String name = "张三";

    public Person() {
    }

    //构造器赋值
    public Person(int age) {
        this.age = age;
    }
}
